<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>MiXiM: MultiDimMappingIterator&lt; Interpolator &gt; Class Template Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>


</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">MiXiM
   &#160;<span id="projectnumber">2.3</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('a00149.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">MultiDimMappingIterator&lt; Interpolator &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00519.html">mapping - classes representing mathematical mappings</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="MultiDimMappingIterator" --><!-- doxytag: inherits="MappingIterator" -->
<p>Implementation of the MappingIterator-interface which is able to iterate over every value in a <a class="el" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping</a>.  
 <a href="a00149.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="a00300_source.html">MappingUtils.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for MultiDimMappingIterator&lt; Interpolator &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="a00890.png" border="0" usemap="#MultiDimMappingIterator_3_01Interpolator_01_4_inherit__map" alt="Inheritance graph"/></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for MultiDimMappingIterator&lt; Interpolator &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="a00891.png" border="0" usemap="#MultiDimMappingIterator_3_01Interpolator_01_4_coll__map" alt="Collaboration graph"/></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="a00892.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a916ccca90ebffc95897f6c13bda9dd67"></a><!-- doxytag: member="MultiDimMappingIterator::MultiDimMappingIterator" ref="a916ccca90ebffc95897f6c13bda9dd67" args="(MultiDimMapping&lt; Interpolator &gt; &amp;pMapping)" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#a916ccca90ebffc95897f6c13bda9dd67">MultiDimMappingIterator</a> (<a class="el" href="a00148.html">MultiDimMapping</a>&lt; Interpolator &gt; &amp;pMapping)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the Iterator for the passed <a class="el" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping</a> and sets its position two the first entry of the passed <a class="el" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping</a>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad5d0da6708731305fdec6fe8086c1b65"></a><!-- doxytag: member="MultiDimMappingIterator::MultiDimMappingIterator" ref="ad5d0da6708731305fdec6fe8086c1b65" args="(MultiDimMapping&lt; Interpolator &gt; &amp;pMapping, const Argument &amp;pos)" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#ad5d0da6708731305fdec6fe8086c1b65">MultiDimMappingIterator</a> (<a class="el" href="a00148.html">MultiDimMapping</a>&lt; Interpolator &gt; &amp;pMapping, const <a class="el" href="a00013.html">Argument</a> &amp;pos)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Intializes the Iterator for the passed <a class="el" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping</a> and sets its position two the passed position. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59ffe4d01d04a566e31dd5ed2c000507"></a><!-- doxytag: member="MultiDimMappingIterator::MultiDimMappingIterator" ref="a59ffe4d01d04a566e31dd5ed2c000507" args="(const MultiDimMappingIterator &amp;o)" -->
&#160;</td><td class="memItemRight" valign="bottom"><b>MultiDimMappingIterator</b> (const <a class="el" href="a00149.html">MultiDimMappingIterator</a> &amp;o)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa90d2e657fa6b0e773eec7c2fa713c4c"></a><!-- doxytag: member="MultiDimMappingIterator::~MultiDimMappingIterator" ref="aa90d2e657fa6b0e773eec7c2fa713c4c" args="()" -->
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#aa90d2e657fa6b0e773eec7c2fa713c4c">~MultiDimMappingIterator</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the memory allocated for the sub mappings. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#a71f35cd0d6fabecb65019466018c51ca">jumpTo</a> (const <a class="el" href="a00013.html">Argument</a> &amp;pos)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Lets the iterator point to the passed position.  <a href="#a71f35cd0d6fabecb65019466018c51ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#a3a3b5ddc5aa1636772b9a89c085acdfc">iterateTo</a> (const <a class="el" href="a00013.html">Argument</a> &amp;pos)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterates to the specified position. This method should be used if the new position is near the current position.  <a href="#a3a3b5ddc5aa1636772b9a89c085acdfc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#a8928195a1fe4bb3af81d3ffe2391827e">next</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterates to the next position of the function.  <a href="#a8928195a1fe4bb3af81d3ffe2391827e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#ae4f87a308ad4648d289f1f66d8da772a">inRange</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the current position of the iterator is in range of the function.  <a href="#ae4f87a308ad4648d289f1f66d8da772a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="a00013.html">Argument</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#a89318443b1c2944e453df221ebdd2d3e">getPosition</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current position of the iterator.  <a href="#a89318443b1c2944e453df221ebdd2d3e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="a00013.html">Argument</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#a6b780009865b8643c7587c2833ee2fb1">getNextPosition</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the next position a call to "next()" would jump to.  <a href="#a6b780009865b8643c7587c2833ee2fb1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual argument_value_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#a3a28409c944c35a15d0353abd689273d">getValue</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the underlying mapping at the current position.  <a href="#a3a28409c944c35a15d0353abd689273d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#ab41125ce8959de6fafb3347a7691ca52">jumpToBegin</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Lets the iterator point to the begin of the function.  <a href="#ab41125ce8959de6fafb3347a7691ca52"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#a99bbed82612268040bb8f5162871fb48">hasNext</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the iterator has a valid next value a call to "next()" could jump to.  <a href="#a99bbed82612268040bb8f5162871fb48"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#af1b499c6d24b81cee68e09ad224087c9">setValue</a> (argument_value_cref_t value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the value of the function at the current position.  <a href="#af1b499c6d24b81cee68e09ad224087c9"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-types"></a>
Protected Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b55be43fd47c1879a3761d88a389cd3"></a><!-- doxytag: member="MultiDimMappingIterator::interpolator_map_type" ref="a1b55be43fd47c1879a3761d88a389cd3" args="" -->
typedef <a class="el" href="a00110.html">InterpolateableMap</a><br class="typebreak"/>
&lt; Interpolator&lt; std::map<br class="typebreak"/>
&lt; argument_value_t, <a class="el" href="a00136.html">Mapping</a> * &gt; &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#a1b55be43fd47c1879a3761d88a389cd3">interpolator_map_type</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The templated <a class="el" href="a00110.html" title="Represents a std::map which is able to interpolate.">InterpolateableMap</a> the underlying <a class="el" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a> uses std::map as storage type. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab54b5dafe1ca46dc46aaa15e734330ff"></a><!-- doxytag: member="MultiDimMappingIterator::interpolated" ref="ab54b5dafe1ca46dc46aaa15e734330ff" args="" -->
typedef <br class="typebreak"/>
<a class="el" href="a00110.html#a4c406f0681ae69646e492c3131786189">interpolator_map_type::interpolated</a>&#160;</td><td class="memItemRight" valign="bottom"><b>interpolated</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add0146735b031a0bad279b4652b6b4b3"></a><!-- doxytag: member="MultiDimMappingIterator::iterator" ref="add0146735b031a0bad279b4652b6b4b3" args="" -->
typedef <br class="typebreak"/>
<a class="el" href="a00109.html">interpolator_map_type::iterator_intpl</a>&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a926bab0adcc3f7fd731e4e0c6a391881"></a><!-- doxytag: member="MultiDimMappingIterator::const_iterator" ref="a926bab0adcc3f7fd731e4e0c6a391881" args="" -->
typedef <br class="typebreak"/>
<a class="el" href="a00057.html">interpolator_map_type::const_iterator_intpl</a>&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#a48c928d79af27bc468eb50cc24d15a38">updateSubIterator</a> (const <a class="el" href="a00013.html">Argument</a> &amp;pos)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper method which updates the sub-iterator for the passed position.  <a href="#a48c928d79af27bc468eb50cc24d15a38"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#a37918121567f5a283b209113b2d4983a">updateSubIterator</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper method which updates the sub-iterator and sets the position of the sub-iterator to its beginning.  <a href="#a37918121567f5a283b209113b2d4983a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#a1eb04551f2a3ae22f0eae4844f14ac97">updateNextPosition</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper method which updates the nextPosition member.  <a href="#a1eb04551f2a3ae22f0eae4844f14ac97"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a77251b9d1da4418ccb2903fc94c7fcd4"></a><!-- doxytag: member="MultiDimMappingIterator::mapping" ref="a77251b9d1da4418ccb2903fc94c7fcd4" args="" -->
const <a class="el" href="a00148.html">MultiDimMapping</a><br class="typebreak"/>
&lt; Interpolator &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4">mapping</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The MultiDimmapping to iterate over. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01dc79b6fe25cb048651ae8870e3d347"></a><!-- doxytag: member="MultiDimMappingIterator::valueIt" ref="a01dc79b6fe25cb048651ae8870e3d347" args="" -->
<a class="el" href="a00109.html">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347">valueIt</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator storing the current position inside the underlying Mappings sub-mapping map. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aceffeb12d2e2bc67226d32ee4206fa40"></a><!-- doxytag: member="MultiDimMappingIterator::subMapping" ref="aceffeb12d2e2bc67226d32ee4206fa40" args="" -->
interpolated&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40">subMapping</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The sub-mapping of the sub-mapping map at the current position. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac2c7a223c07841c72d0ff860b0513e06"></a><!-- doxytag: member="MultiDimMappingIterator::subIterator" ref="ac2c7a223c07841c72d0ff860b0513e06" args="" -->
<a class="el" href="a00137.html">MappingIterator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06">subIterator</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An iterator for the sub-mapping which points two the current position in the next dimensions. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afa4ac8d36d24e411a3edce590b3c21a4"></a><!-- doxytag: member="MultiDimMappingIterator::position" ref="afa4ac8d36d24e411a3edce590b3c21a4" args="" -->
<a class="el" href="a00013.html">Argument</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4">position</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The current position in every <a class="el" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a> of this Iterator. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae3c745c1fea3a1bcd5694b5e1a692297"></a><!-- doxytag: member="MultiDimMappingIterator::nextPosition" ref="ae3c745c1fea3a1bcd5694b5e1a692297" args="" -->
<a class="el" href="a00013.html">Argument</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297">nextPosition</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The position a call to "next()" would jump to. <br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5055b9a32550926693011c818111dcc4"></a><!-- doxytag: member="MultiDimMappingIterator::operator=" ref="a5055b9a32550926693011c818111dcc4" args="(const MultiDimMappingIterator &amp;)" -->
<a class="el" href="a00149.html">MultiDimMappingIterator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html#a5055b9a32550926693011c818111dcc4">operator=</a> (const <a class="el" href="a00149.html">MultiDimMappingIterator</a> &amp;)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator is not allowed. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;template&lt; typename &gt; class Interpolator&gt;<br/>
class MultiDimMappingIterator&lt; Interpolator &gt;</h3>

<p>Implementation of the MappingIterator-interface which is able to iterate over every value in a <a class="el" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping</a>. </p>
<p>As the <a class="el" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping</a> has a tree-like structure of sub-mappings to represent multiple dimensions, the MultiDimIterator consist of a number of sub-MultiDimIterator to represent the current position inside the sub-mappings. So every sub-mapping-iterator represents one dimension and the and Iterator to next Dimensions. The last iterator is an <a class="el" href="a00213.html" title="Provides an implementation of the MappingIterator- Interface which is able to iterate over TimeMappin...">TimeMappingIterator</a>.</p>
<p>Iteration works by sub-iterator-first-iteration. Which means that at first the sub-iterator at the current position is iterated to its end before the position inside the dimension of this iterator is increased. This assures the iteration order demanded by the MappingIterator-interface.</p>
<dl class="author"><dt><b>Author:</b></dt><dd>Karl Wessel </dd></dl>
</div><hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a6b780009865b8643c7587c2833ee2fb1"></a><!-- doxytag: member="MultiDimMappingIterator::getNextPosition" ref="a6b780009865b8643c7587c2833ee2fb1" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;template&lt; typename &gt; class Interpolator&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="a00013.html">Argument</a>&amp; <a class="el" href="a00149.html">MultiDimMappingIterator</a>&lt; Interpolator &gt;::getNextPosition </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>returns the next position a call to "next()" would jump to. </p>
<p>Constant complexity. </p>

<p>Implements <a class="el" href="a00059.html#a1f4cae3b170754a76049b8e81b2e3c07">ConstMappingIterator</a>.</p>
<div class="fragment"><pre class="fragment">                                                  {
    <span class="keywordflow">return</span> <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a>;
  }
</pre></div>
</div>
</div>
<a class="anchor" id="a89318443b1c2944e453df221ebdd2d3e"></a><!-- doxytag: member="MultiDimMappingIterator::getPosition" ref="a89318443b1c2944e453df221ebdd2d3e" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;template&lt; typename &gt; class Interpolator&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="a00013.html">Argument</a>&amp; <a class="el" href="a00149.html">MultiDimMappingIterator</a>&lt; Interpolator &gt;::getPosition </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the current position of the iterator. </p>
<p>Constant complexity. </p>

<p>Implements <a class="el" href="a00059.html#a047e853613d5a19ff34526d0cff8fcf9">ConstMappingIterator</a>.</p>
<div class="fragment"><pre class="fragment">                                              {
    <span class="keywordflow">return</span> <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>;
  }
</pre></div>
</div>
</div>
<a class="anchor" id="a3a28409c944c35a15d0353abd689273d"></a><!-- doxytag: member="MultiDimMappingIterator::getValue" ref="a3a28409c944c35a15d0353abd689273d" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;template&lt; typename &gt; class Interpolator&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual argument_value_t <a class="el" href="a00149.html">MultiDimMappingIterator</a>&lt; Interpolator &gt;::getValue </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the value of the underlying mapping at the current position. </p>
<p>Has constant complexity. </p>

<p>Implements <a class="el" href="a00059.html#ad4419c259e747867f003d07d62d4259f">ConstMappingIterator</a>.</p>
<div class="fragment"><pre class="fragment">                                            {
    <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
      <span class="keywordflow">return</span> <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#ad4419c259e747867f003d07d62d4259f" title="Returns the value of the Mapping at the current position.">getValue</a>();
    <span class="keywordflow">else</span>
      <span class="keywordflow">return</span> <a class="code" href="a00013.html#a8523627cdc70492e5e0935b9a3a78cc4" title="Zero value of a Argument value.">Argument::MappedZero</a>;
  }
</pre></div>
</div>
</div>
<a class="anchor" id="a99bbed82612268040bb8f5162871fb48"></a><!-- doxytag: member="MultiDimMappingIterator::hasNext" ref="a99bbed82612268040bb8f5162871fb48" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;template&lt; typename &gt; class Interpolator&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="a00149.html">MultiDimMappingIterator</a>&lt; Interpolator &gt;::hasNext </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns true if the iterator has a valid next value a call to "next()" could jump to. </p>
<p>Constant complexity. </p>

<p>Implements <a class="el" href="a00059.html#ad4bac7233c154b7086c6124d2e21be49">ConstMappingIterator</a>.</p>
<div class="fragment"><pre class="fragment">                                 {
        <span class="keywordflow">return</span> <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a4906a4e7a03086a28d108fc262faa969" title="Returns true if the a call of &quot;next()&quot; would increase to the position of an a valid entry of the data...">hasNext</a>() || (<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> &amp;&amp; <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#ad4bac7233c154b7086c6124d2e21be49" title="Returns true if the iterator has a next value it can iterate to on a call to &quot;next()&quot;.">hasNext</a>() &amp;&amp; <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a4eca971338ae67b5ee34503cbcf1f342" title="Returns true if the current position of the iterator is between the position of the first and the las...">inRange</a>());
    }
</pre></div>
</div>
</div>
<a class="anchor" id="ae4f87a308ad4648d289f1f66d8da772a"></a><!-- doxytag: member="MultiDimMappingIterator::inRange" ref="ae4f87a308ad4648d289f1f66d8da772a" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;template&lt; typename &gt; class Interpolator&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="a00149.html">MultiDimMappingIterator</a>&lt; Interpolator &gt;::inRange </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns true if the current position of the iterator is in range of the function. </p>
<p>This method should be used as end-condition when iterating over the function with the "next()" method.</p>
<p>Constant complexity. </p>

<p>Implements <a class="el" href="a00059.html#a4a6348a453418da95978e570fec046fc">ConstMappingIterator</a>.</p>
<div class="fragment"><pre class="fragment">                               {
    <span class="keywordflow">return</span> <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a4eca971338ae67b5ee34503cbcf1f342" title="Returns true if the current position of the iterator is between the position of the first and the las...">inRange</a>() &amp;&amp; (<a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>.isInterpolated || (<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> &amp;&amp; <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#a4a6348a453418da95978e570fec046fc" title="Returns true if the current position of the iterator is in range of the function.">inRange</a>()));
  }
</pre></div>
</div>
</div>
<a class="anchor" id="a3a3b5ddc5aa1636772b9a89c085acdfc"></a><!-- doxytag: member="MultiDimMappingIterator::iterateTo" ref="a3a3b5ddc5aa1636772b9a89c085acdfc" args="(const Argument &amp;pos)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;template&lt; typename &gt; class Interpolator&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a00149.html">MultiDimMappingIterator</a>&lt; Interpolator &gt;::iterateTo </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00013.html">Argument</a> &amp;&#160;</td>
          <td class="paramname"><em>pos</em></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Iterates to the specified position. This method should be used if the new position is near the current position. </p>
<p>The new position has to be compared bigger than the current position</p>
<p>Has linear complexity over the number of entries between the current position and the passed position. This leads to nearly constant complexity for position close together. </p>

<p>Implements <a class="el" href="a00059.html#a607d741e2d841265851a85670f247c46">ConstMappingIterator</a>.</p>
<div class="fragment"><pre class="fragment">                                     {
    argument_value_cref_t argVal = pos.<a class="code" href="a00013.html#a137a911de0281cbb519fe13727aa0813" title="Returns the value for the specified dimension.">getArgValue</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.myDimension);

    <span class="keywordflow">if</span>(argVal != <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a2d8b162ab907fbc33e47db214f28518a" title="Returns the current position of the iterator.">getPosition</a>() &amp;&amp; pos.<a class="code" href="a00013.html#a0e9998020362333915af80cde79df9e6" title="Returns true if this Argument has a value for the passed Dimension.">hasArgVal</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.myDimension)) {
      <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a0a190c448a5cfbcd3385c6ccd316542f" title="forward iterates the iterator to the passed position. This position can be any value of the Key-type...">iterateTo</a>(argVal);
      <a class="code" href="a00149.html#a37918121567f5a283b209113b2d4983a" title="Helper method which updates the sub-iterator and sets the position of the sub-iterator to its beginni...">updateSubIterator</a>(pos);
    } <span class="keywordflow">else</span> {
      <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
        <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#a607d741e2d841265851a85670f247c46" title="Iterates to the specified position. This method should be used if the new position is near the curren...">iterateTo</a>(pos);
    }

    <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>.<a class="code" href="a00013.html#a72ac36c91caaeb8f34eb091abff19c51" title="Update the values of this Argument with the values of the passed Argument.">setArgValues</a>(pos);
    <a class="code" href="a00149.html#a1eb04551f2a3ae22f0eae4844f14ac97" title="Helper method which updates the nextPosition member.">updateNextPosition</a>();
  }
</pre></div>
</div>
</div>
<a class="anchor" id="a71f35cd0d6fabecb65019466018c51ca"></a><!-- doxytag: member="MultiDimMappingIterator::jumpTo" ref="a71f35cd0d6fabecb65019466018c51ca" args="(const Argument &amp;pos)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;template&lt; typename &gt; class Interpolator&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a00149.html">MultiDimMappingIterator</a>&lt; Interpolator &gt;::jumpTo </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00013.html">Argument</a> &amp;&#160;</td>
          <td class="paramname"><em>pos</em></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Lets the iterator point to the passed position. </p>
<p>The passed new position can be at arbitrary places.</p>
<p>Has logarithmic complexity in number of dimensions and number of entries inside each dimension. </p>

<p>Implements <a class="el" href="a00059.html#ae3cdbe2115d0e87af0da549b675f2bf8">ConstMappingIterator</a>.</p>
<div class="fragment"><pre class="fragment">                                  {
    argument_value_cref_t argVal = pos.<a class="code" href="a00013.html#a137a911de0281cbb519fe13727aa0813" title="Returns the value for the specified dimension.">getArgValue</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.myDimension);

    <span class="keywordflow">if</span>(argVal != <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a2d8b162ab907fbc33e47db214f28518a" title="Returns the current position of the iterator.">getPosition</a>() &amp;&amp; pos.<a class="code" href="a00013.html#a0e9998020362333915af80cde79df9e6" title="Returns true if this Argument has a value for the passed Dimension.">hasArgVal</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.myDimension)) {
      <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#ad149b5c37b429ccc1fc5615c217cd3de" title="Moves the iterator to the passed position. This position can be any value of the Key-type.">jumpTo</a>(argVal);
      <a class="code" href="a00149.html#a37918121567f5a283b209113b2d4983a" title="Helper method which updates the sub-iterator and sets the position of the sub-iterator to its beginni...">updateSubIterator</a>(pos);
    } <span class="keywordflow">else</span> {
      <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
        <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#ae3cdbe2115d0e87af0da549b675f2bf8" title="Lets the iterator point to the passed position.">jumpTo</a>(pos);
    }

    <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>.<a class="code" href="a00013.html#a72ac36c91caaeb8f34eb091abff19c51" title="Update the values of this Argument with the values of the passed Argument.">setArgValues</a>(pos);
    <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a>.<a class="code" href="a00013.html#a72ac36c91caaeb8f34eb091abff19c51" title="Update the values of this Argument with the values of the passed Argument.">setArgValues</a>(<a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>);
    <a class="code" href="a00149.html#a1eb04551f2a3ae22f0eae4844f14ac97" title="Helper method which updates the nextPosition member.">updateNextPosition</a>();
  }
</pre></div>
</div>
</div>
<a class="anchor" id="ab41125ce8959de6fafb3347a7691ca52"></a><!-- doxytag: member="MultiDimMappingIterator::jumpToBegin" ref="ab41125ce8959de6fafb3347a7691ca52" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;template&lt; typename &gt; class Interpolator&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="a00149.html">MultiDimMappingIterator</a>&lt; Interpolator &gt;::jumpToBegin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Lets the iterator point to the begin of the function. </p>
<p>The beginning of the function depends is the position of the first entry in the underlying <a class="el" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>.</p>
<p>Constant complexity. </p>

<p>Implements <a class="el" href="a00059.html#a6b6af19266855c21ce3e3449de3f0d6f">ConstMappingIterator</a>.</p>
<div class="fragment"><pre class="fragment">                            {
    <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a812d4bd2ab7b419deb933b8c472e1912" title="Moves the iterator to the first element.">jumpToBegin</a>();
    <a class="code" href="a00149.html#a37918121567f5a283b209113b2d4983a" title="Helper method which updates the sub-iterator and sets the position of the sub-iterator to its beginni...">updateSubIterator</a>();
    <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
      <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>.<a class="code" href="a00013.html#a72ac36c91caaeb8f34eb091abff19c51" title="Update the values of this Argument with the values of the passed Argument.">setArgValues</a>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#a047e853613d5a19ff34526d0cff8fcf9" title="Returns the current position of the iterator.">getPosition</a>());

    <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>.<a class="code" href="a00013.html#a27bd7000e865670a673039233424d2ab" title="Changes the value for the specified dimension.">setArgValue</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.myDimension, <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a2d8b162ab907fbc33e47db214f28518a" title="Returns the current position of the iterator.">getPosition</a>());
    <a class="code" href="a00149.html#a1eb04551f2a3ae22f0eae4844f14ac97" title="Helper method which updates the nextPosition member.">updateNextPosition</a>();
  }
</pre></div>
</div>
</div>
<a class="anchor" id="a8928195a1fe4bb3af81d3ffe2391827e"></a><!-- doxytag: member="MultiDimMappingIterator::next" ref="a8928195a1fe4bb3af81d3ffe2391827e" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;template&lt; typename &gt; class Interpolator&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="a00149.html">MultiDimMappingIterator</a>&lt; Interpolator &gt;::next </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Iterates to the next position of the function. </p>
<p>The next position depends on the implementation of the Function. Calling this method will always work, but if their is no next entry to iterate to inside the underlying <a class="el" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a> the actual position next jumps will be valid but without meaning. Therefore "hasNext()" should be called before calling this method.</p>
<p>Has constant complexity. </p>

<p>Implements <a class="el" href="a00059.html#afdafa6870cd19b3d35674a7bc777585d">ConstMappingIterator</a>.</p>
<div class="fragment"><pre class="fragment">                     {
    <span class="keywordflow">if</span>(!<a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>.isInterpolated &amp;&amp; <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> &amp;&amp; <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#ad4bac7233c154b7086c6124d2e21be49" title="Returns true if the iterator has a next value it can iterate to on a call to &quot;next()&quot;.">hasNext</a>()) {
      <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#afdafa6870cd19b3d35674a7bc777585d" title="Iterates to the next position of the Mapping.">next</a>();
    } <span class="keywordflow">else</span> {
      <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#aa9b9aaf1491ef6ef251bc7399aecdf52" title="Iterates to the next entry in the underlying data structure.">next</a>();
      <a class="code" href="a00149.html#a37918121567f5a283b209113b2d4983a" title="Helper method which updates the sub-iterator and sets the position of the sub-iterator to its beginni...">updateSubIterator</a>();
    }


    <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
      <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>.<a class="code" href="a00013.html#a72ac36c91caaeb8f34eb091abff19c51" title="Update the values of this Argument with the values of the passed Argument.">setArgValues</a>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#a047e853613d5a19ff34526d0cff8fcf9" title="Returns the current position of the iterator.">getPosition</a>());

    <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>.<a class="code" href="a00013.html#a27bd7000e865670a673039233424d2ab" title="Changes the value for the specified dimension.">setArgValue</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.myDimension, <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a2d8b162ab907fbc33e47db214f28518a" title="Returns the current position of the iterator.">getPosition</a>());

    <a class="code" href="a00149.html#a1eb04551f2a3ae22f0eae4844f14ac97" title="Helper method which updates the nextPosition member.">updateNextPosition</a>();
  }
</pre></div>
</div>
</div>
<a class="anchor" id="af1b499c6d24b81cee68e09ad224087c9"></a><!-- doxytag: member="MultiDimMappingIterator::setValue" ref="af1b499c6d24b81cee68e09ad224087c9" args="(argument_value_cref_t value)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;template&lt; typename &gt; class Interpolator&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="a00149.html">MultiDimMappingIterator</a>&lt; Interpolator &gt;::setValue </td>
          <td>(</td>
          <td class="paramtype">argument_value_cref_t&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the value of the function at the current position. </p>
<p>Constant complexity. </p>

<p>Implements <a class="el" href="a00137.html#a68c80b10de257d7cfd68f49bfd6a2cbe">MappingIterator</a>.</p>

<p>Reimplemented in <a class="el" href="a00091.html#aaf027c28adcc2465cbb5b911eaec7a8f">FilledUpMappingIterator</a>.</p>
<div class="fragment"><pre class="fragment">                                                    {
    <span class="keywordflow">if</span>(<a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>.isInterpolated) {
      <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00109.html#ac9ff6164dadb0782ba712d238fc5fa86" title=": Changes (and adds if necessary) the value for the entry at the current position of the iterator to ...">setValue</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.createSubSignal());
      <a class="code" href="a00149.html#a37918121567f5a283b209113b2d4983a" title="Helper method which updates the sub-iterator and sets the position of the sub-iterator to its beginni...">updateSubIterator</a>(<a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>);
    }
    <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00137.html#a68c80b10de257d7cfd68f49bfd6a2cbe" title="Changes the value of the Mapping at the current position.">setValue</a>(value);
  }
</pre></div>
</div>
</div>
<a class="anchor" id="a1eb04551f2a3ae22f0eae4844f14ac97"></a><!-- doxytag: member="MultiDimMappingIterator::updateNextPosition" ref="a1eb04551f2a3ae22f0eae4844f14ac97" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;template&lt; typename &gt; class Interpolator&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a00149.html">MultiDimMappingIterator</a>&lt; Interpolator &gt;::updateNextPosition </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Helper method which updates the nextPosition member. </p>
<p>Called when the current position has changed. </p>

<p>Referenced by <a class="el" href="a00149.html#a3a3b5ddc5aa1636772b9a89c085acdfc">MultiDimMappingIterator&lt; Linear &gt;::iterateTo()</a>, <a class="el" href="a00149.html#a71f35cd0d6fabecb65019466018c51ca">MultiDimMappingIterator&lt; Linear &gt;::jumpTo()</a>, <a class="el" href="a00149.html#ab41125ce8959de6fafb3347a7691ca52">MultiDimMappingIterator&lt; Linear &gt;::jumpToBegin()</a>, <a class="el" href="a00149.html#a916ccca90ebffc95897f6c13bda9dd67">MultiDimMappingIterator&lt; Linear &gt;::MultiDimMappingIterator()</a>, and <a class="el" href="a00149.html#a8928195a1fe4bb3af81d3ffe2391827e">MultiDimMappingIterator&lt; Linear &gt;::next()</a>.</p>
<div class="fragment"><pre class="fragment">                           {
    <span class="keywordtype">bool</span> intp = <a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>.isInterpolated;

    <span class="keywordtype">bool</span> noSubIt = <span class="keyword">false</span>;
    <span class="keywordtype">bool</span> hasNoNext = <span class="keyword">false</span>;
    <span class="keywordflow">if</span>(!intp){
      noSubIt = !<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>;
      <span class="keywordflow">if</span>(!noSubIt)
        hasNoNext = !<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#ad4bac7233c154b7086c6124d2e21be49" title="Returns true if the iterator has a next value it can iterate to on a call to &quot;next()&quot;.">hasNext</a>();
    }
    <span class="keywordflow">if</span>(intp || noSubIt || hasNoNext){
      <span class="keywordflow">if</span>(<a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a4906a4e7a03086a28d108fc262faa969" title="Returns true if the a call of &quot;next()&quot; would increase to the position of an a valid entry of the data...">hasNext</a>()){
        <a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a>* tmp = (*<a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.getNextValue())-&gt;createConstIterator();
        <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a>.<a class="code" href="a00013.html#a72ac36c91caaeb8f34eb091abff19c51" title="Update the values of this Argument with the values of the passed Argument.">setArgValues</a>(tmp-&gt;<a class="code" href="a00059.html#a047e853613d5a19ff34526d0cff8fcf9" title="Returns the current position of the iterator.">getPosition</a>());
        <span class="keyword">delete</span> tmp;
      }<span class="keywordflow">else</span>{
        <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a> = <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>;
      }
      <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a>.<a class="code" href="a00013.html#a27bd7000e865670a673039233424d2ab" title="Changes the value for the specified dimension.">setArgValue</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.myDimension, <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.getNextPosition());

    } <span class="keywordflow">else</span> {
      <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a>.<a class="code" href="a00013.html#a72ac36c91caaeb8f34eb091abff19c51" title="Update the values of this Argument with the values of the passed Argument.">setArgValues</a>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#a1f4cae3b170754a76049b8e81b2e3c07" title="Returns the position the next call to &quot;next()&quot; of this Iterator would iterate to.">getNextPosition</a>());
    }
  }
</pre></div>
</div>
</div>
<a class="anchor" id="a48c928d79af27bc468eb50cc24d15a38"></a><!-- doxytag: member="MultiDimMappingIterator::updateSubIterator" ref="a48c928d79af27bc468eb50cc24d15a38" args="(const Argument &amp;pos)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;template&lt; typename &gt; class Interpolator&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a00149.html">MultiDimMappingIterator</a>&lt; Interpolator &gt;::updateSubIterator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00013.html">Argument</a> &amp;&#160;</td>
          <td class="paramname"><em>pos</em></td><td>)</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Helper method which updates the sub-iterator for the passed position. </p>
<p>Called when the position of of the iterator inside the dimension this Iterator represents has changed. </p>
<div class="fragment"><pre class="fragment">                                              {
    interpolated subM = <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#afd052facfd07e1a139a6da76d129917e" title="Returns the interpolated value at the current position of the Iterator.">getValue</a>();
    <span class="keywordflow">if</span>(subM != <a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>) {
      <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
        <span class="keyword">delete</span> <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>;

      <a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a> = subM;
      <span class="keywordflow">if</span>(*<a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>)
        <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> = (*subMapping)-&gt;createIterator(pos);
      <span class="keywordflow">else</span>
        <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> = 0;
    } <span class="keywordflow">else</span> {
      <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
        <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#ae3cdbe2115d0e87af0da549b675f2bf8" title="Lets the iterator point to the passed position.">jumpTo</a>(pos);
    }
  }
</pre></div>
</div>
</div>
<a class="anchor" id="a37918121567f5a283b209113b2d4983a"></a><!-- doxytag: member="MultiDimMappingIterator::updateSubIterator" ref="a37918121567f5a283b209113b2d4983a" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;template&lt; typename &gt; class Interpolator&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a00149.html">MultiDimMappingIterator</a>&lt; Interpolator &gt;::updateSubIterator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Helper method which updates the sub-iterator and sets the position of the sub-iterator to its beginning. </p>
<p>Called when the position of of the iterator inside the dimension this Iterator represents has changed. </p>

<p>Referenced by <a class="el" href="a00149.html#a3a3b5ddc5aa1636772b9a89c085acdfc">MultiDimMappingIterator&lt; Linear &gt;::iterateTo()</a>, <a class="el" href="a00149.html#a71f35cd0d6fabecb65019466018c51ca">MultiDimMappingIterator&lt; Linear &gt;::jumpTo()</a>, <a class="el" href="a00149.html#ab41125ce8959de6fafb3347a7691ca52">MultiDimMappingIterator&lt; Linear &gt;::jumpToBegin()</a>, <a class="el" href="a00149.html#a8928195a1fe4bb3af81d3ffe2391827e">MultiDimMappingIterator&lt; Linear &gt;::next()</a>, and <a class="el" href="a00149.html#af1b499c6d24b81cee68e09ad224087c9">MultiDimMappingIterator&lt; Linear &gt;::setValue()</a>.</p>
<div class="fragment"><pre class="fragment">                           {
    interpolated subM = <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#afd052facfd07e1a139a6da76d129917e" title="Returns the interpolated value at the current position of the Iterator.">getValue</a>();
    <span class="keywordflow">if</span>(subM != <a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>) {
      <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
        <span class="keyword">delete</span> <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>;

      <a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a> = subM;
      <span class="keywordflow">if</span>(*<a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>){
        <span class="keywordflow">if</span>(<a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>.isInterpolated)
          <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> = (*subMapping)-&gt;createIterator(<a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>);
        <span class="keywordflow">else</span>
          <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> = (*subMapping)-&gt;createIterator();
      }<span class="keywordflow">else</span>
        <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> = 0;
    } <span class="keywordflow">else</span> {
      <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
        <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#a6b6af19266855c21ce3e3449de3f0d6f" title="Lets the iterator point to the begin of the mapping.">jumpToBegin</a>();
    }
  }
</pre></div>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>D:/Projects/MiXiM/extsrc/mixim/src/base/phyLayer/<a class="el" href="a00300_source.html">MappingUtils.h</a></li>
</ul>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="a00149.html">MultiDimMappingIterator</a>      </li>

    <li class="footer">Generated on Tue Mar 5 2013 21:26:32 for MiXiM by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.5.1 </li>
   </ul>
 </div>


</body>
</html>
